package com.minimalist.lindi.service;

import com.minimalist.common.config.mybatis.bo.PageResp;
import com.minimalist.common.entity.lindi.po.LindiProvinceIndex;
import com.minimalist.common.entity.lindi.vo.provinceindex.LindiProvinceIndexQueryVO;
import com.minimalist.common.entity.lindi.vo.provinceindex.LindiProvinceIndexVO;
import com.mybatisflex.core.service.IService;
import jakarta.validation.constraints.NotNull;

/**
 * 林地指标交易平台_省级公益林指标 服务层。
 *
 * @author 11987
 * @since 2025-05-13
 */
public interface LindiProvinceIndexService extends IService<LindiProvinceIndex>{

    /**
     * 新增省级指标。
     *
     * @param indexVO 省级指标VO对象。
     */
    void addProvinceIndex(LindiProvinceIndexVO indexVO);

    /**
     * 删除省级指标。
     *
     * @param provinceIndexId 省级指标ID。
     */
    void deleteProvinceIndexByProvinceIndexId(@NotNull(message = "省级指标ID不能为空") Long provinceIndexId);

    /**
     * 更新省级指标。
     *
     * @param indexVO 省级指标VO对象。
     */
    void updateProvinceIndexByProvinceIndexId(LindiProvinceIndexVO indexVO);

    /**
     * 查询省级指标分页列表。
     *
     * @param queryVO 查询条件。
     * @return 分页列表。
     */
    PageResp<LindiProvinceIndexVO> getPageProvinceIndexList(LindiProvinceIndexQueryVO queryVO);

    /***
     * 根据省级指标ID查询省级指标。
     * @param provinceIndexId 省级指标ID。
     * @return 省级指标VO对象。
     */
    LindiProvinceIndexVO getProvinceIndexByProvinceIndexId(Long provinceIndexId);

    /**
     * 初始化省级指标。
     */
    void initProvinceIndex();
}
